Closed. This question needs debugging details. It is not currently accepting answers.
Edit the question to include desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem. This will help others answer the question.
Closed 9 days ago.
Improve this question
check (https://i.stack.imgur.com/AHR2c.png) in this picture you can see problem
this is c language question in this question i put any character or string type value at run time it has to be show error but it is showing even why?
Whenever we try declare a variable before initializing it, It stores an undefined value which is unpredictable and varies from run to run, compiler to compiler and it is always recommended to initialize your variable.
And scanf function is a type-unsafe function and it does not check the type of the value which you are entering and of the value which you enter is not a integer like you try to store a string value in the integer type variable then it will assign some undefined value which is also unpredictable and it is a indication of that the value you have entered in Invalid.
Related
Closed. This question needs debugging details. It is not currently accepting answers.
Edit the question to include desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem. This will help others answer the question.
Closed 2 years ago.
Improve this question
I know it is not recommended to post code as an image, since I am getting a formatting error when trying to post code on here. Anyway, I am trying to write a simple C program to count number of words, characters, newlines using do while loop. However, the output is not as expected. Please help!
Instead of a do-while, you should try using while. Since your code starts off by checking whether a is any of your if cases, it goes to the else case, and increments the New line variable. If possible, could you share the output screen.
Closed. This question needs debugging details. It is not currently accepting answers.
Edit the question to include desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem. This will help others answer the question.
Closed 3 years ago.
Improve this question
So, I have some code like:
char* t2 = strtok(NULL, " \t\n,");
char regN[3];
strcpy(regN, t2);
Register* rt = getRegister(regN);
I checked several times the value of regN by printing is $t0 but the function returns NULL.
However when I tried getRegister("$t0") it returns the correct value.
The only reason I can think for this is if strtok() returns something other than the predicted value. Yes, the next token is $t0. I checked this as well.
Any suggestions or ideas what is going wrong here?
Three char long string must be stored in the 4 char array as it also needs the space for terminating zero. Your array is 3 chars long, so you have the Undefined Behaviour here
Closed. This question needs debugging details. It is not currently accepting answers.
Edit the question to include desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem. This will help others answer the question.
Closed 6 years ago.
Improve this question
thanks for your help.
I'm trying to similate a simplified version of ARM, and I have a very weird error in c http://pastebin.com/3XRdngty .
I don't understant why in the function executer_code(),
the for doesn't work ...
I mean it should be looping untill the variable "i" is equal to the variable nombre_instruction, but it turns out that the variable "nombre_instruction" is the right value the first time it goes in the for, but the second time it doesn't go in the for because its value changed to 0, I search on the internet if someone has the same kind of error, and i didn't find anything.I reread my code but still I cannot figure out why it does this, 3 hours has passed already.
And thank you again for you help :)
This is taken from your code:
char *compar;
if(i==0){
sprintf(&compar,"%c%c%c%c",code[0],code[1],code[2],code[3]);
}
The problem here is that you declare compar as a pointer to char, but it is uninitialized. So, it has an undefined value. When you fill it with sprintf, you just write somewhere in the memory, and apparently, you write over the variable nombre_instruction.
Solution:
char compar[200];
Closed. This question needs debugging details. It is not currently accepting answers.
Edit the question to include desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem. This will help others answer the question.
Closed 7 years ago.
Improve this question
So lets say I have received a message that resembles the following
"L2N5*8R10!11T0A1K3Y14#4W7O6O9C12R13"
and I am expected to sort out the characters in accordance to the numbers succeeding them and change the characters that are not letters into a space. I have no problem doing the sorting out part, I am only having a trouble while trying to write a function that will change those characters into space.
The out put should be something like this
TALK NOW OR CRY
but I am getting
TALK#NOW*OR!CRY
Can anyone help me figure out what my function should look like so that I can be able to change the characters into space??
Unless you show your code, we'll only be able to guess!!
However, as a general suggestion, I would recommended, you should check each entry against isalpha(). In case you got a return value of 0, replace the entry with a .
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions concerning problems with code you've written must describe the specific problem — and include valid code to reproduce it — in the question itself. See SSCCE.org for guidance.
Closed 9 years ago.
Improve this question
I just started getting a weird printf output, has anyone ever seen this? Any idea what it could be caused by?
http://imgur.com/4Mt6xdi
Edit
Here's the code. I'm new to c so if anything (even if it's not causing the error) looks wrong or uncommon please tell me.
printf(f2,"%8.31f\t%8.31f\n",x[0],x[2]);
fprintf(f2,"%8.31f\t%8.31f\n",x[1],x[2]);
In the code you write:
if (x[0]*oldx<0)
{
printf(f2,"%8.31f\t%8.31f\n",x[0],x[2]);
fprintf(f2,"%8.31f\t%8.31f\n",x[1],x[2]);
}
where f2 is a pointer to FILE, which shall not be passed as the first parameter of printf. Just remove it.
At least one problem is on lines 96-97:
printf(f2,"%8.31f\t%8.31f\n",x[0],x[2]);
fprintf(f2,"%8.31f\t%8.31f\n",x[1],x[2]);
The first line should call fprintf, not printf.
Any compiler should give you at least a warning for calling printf with a FILE* as the first argument. Did you see such a warning? If so, why did you ignore it?
Compiling with additional warnings enabled should show you a number of other problems. Fix those before doing anything else.