Home > String Literal > C Error Comparison With String Literal Results In Unspecified Behavior

C Error Comparison With String Literal Results In Unspecified Behavior

Contents

Join Date May 2009 Posts 827 Originally Posted by grumpy You're running into the fact that C++ supports two distinct but unrelated types which might be described as a string. 1) Browse other questions tagged c xcode osx if-statement or ask your own question. Is the person in the mirror an example of a philosophical zombie? It's basically just a scanf() and then a ton of if statements that produce a pre-determined output.

Join them; it only takes a minute: Sign up Getting error when comparing a character with component of a string in C++ up vote 1 down vote favorite 1 #include Suck it up, Buttercup, and read this, this, and this before posting again. 05-29-2010 #13 Programmer_P View Profile View Forum Posts Programming Ninja In-T... Join Date May 2009 Posts 827 And if I try dereferencing the char pointer argv[1] in the if statement by doing if (*argv[1] == "ALiteralString") it wont compile at all. I just looked at the gcc source (appended below) and as far as I can see that message is only generated when there is a real error such as if (str http://stackoverflow.com/questions/2603039/warning-comparison-with-string-literals-results-in-unspecified-behaviour

Comparison With String Literal Results In Unspecified Behavior -address

Show your current code that is not working. Evolution bottleneck event leading to color changing humans How to search for a flight when dates and cities are flexible but non-direct flights must not pass through a particular country? share|improve this answer answered Aug 21 '13 at 7:40 alex 5872520 add a comment| Your Answer draft saved draft discarded Sign up or log in Sign up using Google Sign Join Date May 2009 Posts 827 Ok, another problem dealing with argv: When I get the argv[1] argument and store it in a string, I then get the size of the

YA coming-of-age fantasy series, protagonist keeps pigs Let's draw some Atari ST bombs! share|improve this answer answered Nov 26 '11 at 5:45 R.. 127k15187420 1 I love how all the answers are all pretty much the same. How do I determine the value of a currency? Result Of Comparison Against A String Literal Is Unspecified Word play.

QGIS export "save as image" automate with python? Convincing players to put more effort into building their character Let's draw some Atari ST bombs! A little Googling provided me that same info just a little before your reply. additional hints How does one compare an element of argv (an array of char pointers) with a literal string, or to put it more accurately, how does one compare the char array being

Else if they're not, I output an error saying you can't pass in just 1 argument into the program, if that argument is not "--help". Result Of Comparison Against A String Literal Is Unspecified (use Strncmp Instead) if (result = 0) will always test false (as zero is false). 3) You are using a command line interpreter that filters "--help", and changes what is being passed to your Join Date May 2009 Posts 827 Quick question though: Does the string::c_str() function work with comparison operators such as '!=' and '==', if I use those operators with the other operand The code should be straightforward that's why I didn't include any comments.

Comparison With String Literal Results In Unspecified Behaviour C++

This one comes out first if I search on SO for "[C] compare string". http://stackoverflow.com/questions/15601438/comparison-with-string-literal-results-in-unspecified-behaviour-error I am getting a warning with gcc: "comparison with string literals results in unspecified behaviour" at the lines commented with "WARNING HERE" (see code below). Comparison With String Literal Results In Unspecified Behavior -address However i was unsure about initializing the num integer so i left it out but the code still executes and works correctly. Comparison With String Literal Results In Unspecified Behaviour -waddress You need to use %s to scan a string.

What does "xargs grep" do? share|improve this answer answered Apr 8 '10 at 20:06 bluebrother 5,76711220 He's comparing characters, not strings. –WhirlWind Apr 8 '10 at 20:07 @WhirlWind: That's incorrect. Quote of the Day 12/20: Mario F.:I never was, am not, and never will be, one to shut up in the face of something I think is fundamentally wrong. Thanks in advance. #include #include #include typedef enum {false, true} bool; typedef struct { char **arg; char *infile; char *outfile; int background; } Command_Info; int parse_cmd(char *cmd_line, Command_Info Warning Comparison With String Literal Results In Unspecified Behaviour

This is C++, not C. share|improve this answer answered Oct 12 '12 at 22:51 Luchian Grigore 167k28294454 add a comment| up vote 1 down vote You're comparing pointers, not the actual strings. Why is a spacetime with negative curvature assumed to have a hyperbolic, rather than spherical, geometry? Not necessarily.

Natural Pi #0 - Rock Why is a spacetime with negative curvature assumed to have a hyperbolic, rather than spherical, geometry? Comparison With String Literal Results In Unspecified Behavior C Sebastian 180k41335485 add a comment| Your Answer draft saved draft discarded Sign up or log in Sign up using Google Sign up using Facebook Sign up using Email and Password Convince people not to share their password with trusted others Odd Number of Cats?

share|improve this answer edited Apr 8 '10 at 20:10 answered Apr 8 '10 at 20:04 RarrRarrRarr 1,866911 1 args[i] is a char*, not a char. –Charles Bailey Apr 8 '10

How do I approach my boss to discuss this? There is probably something big that I've done wrong. Help! C++ Strcmp Was Not Declared In This Scope I'm about to automate myself out of a job.

have re gender pronouns? Right 98% of the time, and don't care about the other 3%. So, here you are comparing args[i] (a pointer) to "&" (also a pointer). Red Herring Bonkers In The Red Herring Bunkers Best way to learn maths - proofs or exercises?

share|improve this answer answered Apr 8 '10 at 20:26 J.F. Without seeing your code or the command line you're using to run your program, only guesses are possible. Also you can check the number of arguments passed by using argc (The number of parameters passed). 05-29-2010 #10 Programmer_P View Profile View Forum Posts Programming Ninja In-T... Letters of support for tenure Should wires be tinned to under the insulation?

What does Billy Beane mean by "Yankees are paying half your salary"? share|improve this answer answered Nov 26 '11 at 5:47 rob mayoff 224k32440491 add a comment| up vote 0 down vote Your are comparing addresses of planet to the address of those It's not obvious that you need , though. Right 98% of the time, and don't care about the other 3%.

I store pointers to const strings in various objects and use them much like magic numbers, so direct pointer comparisons are the ideal thing to do. Noun for people/employees/coworkers who tend to say "it's not my job" when asked to do something slightly beyond their norm? So why then is: if (argv[3] == "--help") not working, since they're both c-style strings? Does using OpenDNS or Google DNS affect anything about security or gaming speed?

At that memory location, you will have two bytes -- the character 'a' and the null terminator for the string. more stack exchange communities company blog Stack Exchange Inbox Reputation and Badges sign up log in tour help Tour Start here for a quick overview of the site Help Center Detailed Odd Number of Cats? Guess the word What is missing from a non-afterburning engine to prohibit the use of afterburning?

Ability damage plus leveling up equals confusion Should wires be tinned to under the insulation? Infact, the warning is incorrect for this valid use. share|improve this answer answered Apr 8 '10 at 20:06 Michael Burr 239k30352573 +1 in a few hours. Unit square inside triangle.