Search Results

Search found 1848 results on 74 pages for 'printf'.

Page 32/74 | < Previous Page | 28 29 30 31 32 33 34 35 36 37 38 39  | Next Page >

  • stack dump accessing malloc char array

    - by robUK
    Hello, gcc 4.4.3 c89 I have the following source code. And getting a stack dump on the printf. char **devices; devices = malloc(10 * sizeof(char*)); strcpy(devices[0], "smxxxx1"); printf("[ %s ]\n", devices[0]); /* Stack dump trying to print */ I am thinking that this should create an char array like this. devices[0] devices[1] devices[2] devices[4] etc And each element I can store my strings. Many thanks for any suggestions,

    Read the article

  • Passing a pointer to a function that doesn't match the requirements of the formal parameter

    - by Andreas Grech
    int valid (int x, int y) { return x + y; } int invalid (int x) { return x; } int func (int *f (int, int), int x, int y) { //f is a pointer to a function taking 2 ints and returning an int return f(x, y); } int main () { int val = func(valid, 1, 2), inval = func(invalid, 1, 2); // <- 'invalid' does not match the contract printf("Valid: %d\n", val); printf("Invalid: %d\n", inval); /* Output: * Valid: 3 * Invalid: 1 */ } At the line inval = func(invalid, 1, 2);, why am I not getting a compiler error? If func expects a pointer to a function taking 2 ints and I pass a pointer to a function that takes a single int, why isn't the compiler complaining? Also, since this is happening, what happens to the second parameter y in the invalid function?

    Read the article

  • Cannot use fclose on output stream, input stream is fine.

    - by TeeJay
    Whenever I run my program with fclose(outputFile); at the very end, I get an error. glibc detected...corrupted double-linked list The confusing thing about this though, is that I have fclose(inputFile); directly above it and it works fine. Any suggestions? FILE* inputFile = fopen(fileName, "r"); if (inputFile == NULL) { printf("inputFile did not open correctly.\n"); exit(0); } FILE* outputFile = fopen("output.txt", "wb"); if (outputFile == NULL) { printf("outputFile did not open correctly.\n"); exit(0); } /* ... read in inputFile ... */ /* ... some fprintf's to outputFile ... */ fclose(inputFile); fclose(outputFile);

    Read the article

  • How to handle inputs in a C shell program during exec

    - by hits_lucky
    I am currently writing my own shell program. This simple shell can just execute commands. When executing commands like vi or calc which require input from the terminal , the command is getting executed and is waiting for the input from the user. But I am unable to give any input on the screen. How should the input be handled during the fork and exec. Here is the piece of code which is executing commands: if((pid = fork()) < 0) { perror("Fork failed"); exit(errno); } if(pid == 0) { // Child process if(execvp(arguments[0], arguments) == -1) { child_status = errno; switch(child_status) { case ENOENT: printf(" command not found \n"); break; } exit(errno); } } else { // parent process int wait_stat; if(waitpid(pid , &wait_stat, WNOHANG) == -1) { printf(" waitpid failed \n"); return; } } } ~ Thanks,

    Read the article

  • Global list in C/gtk+

    - by sterh
    Hello, I need in global list in my gtk+ application, i use for it GList: For example: I have structure: typedef struct _data { Glist list; }Data; I want to use one copy of the list in the whole program: I have a function bulid my list: gboolean build_list() { Data->list = g_list_append(mw->a, "First "); Data->list = g_list_append(mw->a, "Second "); Data->list = g_list_append(mw->a, "Third "); g_list_foreach(Data->list, (GFunc)printf, NULL); } After calling this function to display all items in the list. zbut when i try to make it in another function - for example: void foreach() { g_list_foreach(Data->list, (GFunc)printf, NULL); } I see error in gdb: *Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0xb7335700 (LWP 5364)] 0xb765a7d7 in strchrnul () from /lib/i686/cmov/libc.so.6 * How can i create global list in my application? Thank you.

    Read the article

  • [c]how to take input for a character pionter without using fget?

    - by ashish yadav
    consider the code include int main() {char* a; scanf("%s",a);//&a and &a[0] give same results-crashes printf("%s",); return 0; } why does this code results in crashing?whereas this code using character array works fine? include int main() {char a[100]; scanf("%s",&a[0]);//works fine printf("%s",a); return 0; } the difference being character array and pointer?but i knew that pointer just points to the first element that is &a[0] should work fine but upper code crashes for all three that is a,&a and &a[0]? the main thing i would to gather is how can i take input of a character pointer if i insist on using scanf only? i apologize if i am not clear. thanks in advance:)

    Read the article

  • How to add characters to reach the maximum size of a char[].

    - by Bon_chan
    Hi folks, I have the following part of code : for(int i=0;i<n;i++) { printf("Student %d\n",i+1); printf("Enter name : "); scanf("%s",&(student+i)->name); fflush(stdin); lengthName = strlen((student+i)->name); while(lengthName !='\0') { }} when the length is shorter than 10, it will add hyphens until reaching the maximum size. Ex : John = 6 hyphens will be added I know how to do it in csharp but can't figure it out in c. Could some of you give me some lights please? PS : Oh yes the variable name is char name[10+1] and it a part of the structure called student.

    Read the article

  • Masking a bit in C returning unexpected result

    - by Eamorr
    0x7F000000 is 0111 1111 0000 0000 0000 0000 0000 0000 in 32 bit binary. 0x01000058 is 0000 0001 0000 0000 0000 0000 0101 1000. When I AND the two numbers together I expect 0000 0001 0000 0000 0000 0000 0000 0000, but for some reason I get 0. Here is my code: #define MASK_binop 0x80000000 #define MASK_operation 0x7F000000 int instruction=atoi(line); if((MASK_binop & instruction)>0) printf("binop\n"); else if((MASK_operation & instruction)>0) printf("operation\n"); Each of the above comparisons keeps returning zero. Is it something to do with 32/64 bits? I'm using 64-bit compiler.

    Read the article

  • using time() to measure how long a function takes

    - by hap497
    Hi, I am trying to use time() to measure various points of my program. http://www.cplusplus.com/reference/clibrary/ctime/time/ What I don't understand is why the values in the before and after are Different? I understanding this is not the best way to profile my program, I just want to see how long does something take. printf ("**MyProgram::before time= %ld\n", time(NULL)); doSomthing(); doSomthingLong(); printf ("**MyProgram::after time= %ld\n", time(NULL)); Thank you.

    Read the article

  • Writing to pointer out of bounds after malloc() not causing error

    - by marr
    Hi, when I try the code below it works fine. Am I missing something? main() { int *p; p=malloc(sizeof(int)); printf("size of p=%d\n",sizeof(p)); p[500]=999999; printf("p[0]=%d",p[500]); return 0; } I tried it with malloc(0*sizeof(int)) or anything but it works just fine. The program only crashes when I don't use malloc at all. So even if I allocate 0 memory for the array p, it still stores values properly. So why am I even bothering with malloc then?

    Read the article

  • How to receive a arg from command line in C

    - by 115599yy
    Hi everyone: I want to write a program to receive a argument from command line. It's like a kind of atof(). There my program goes: 9 char s[] = "3.1415e-4"; 10 if (argc == 1) { 11 printf("%e\n",atof(s)); 12 } 13 else if (argc == 2) { 14 //strcpy(s, argv[1]); 15 printf("%e\n",atof(argv[1])); 16 } 1.should I just use argv[1] for the string to pass to my atof(), or, put it into s[]? 2.If I'd better put it in s[], is there some build-in function to do this "put" work? maybe some function like strcpy()?? thanks.

    Read the article

  • Counting number of searches

    - by shinjuo
    I am trying to figure out how to get the total number of tests each search makes in this algorithm. I am not sure how I can pass that information back from this algorithm though. I need to count how many times while runs and then pass that number back into an array to be added together and determine the average number of test. main.c #include <stdio.h> #include <stdlib.h> #include <time.h> #include <stdbool.h> #include "percentage.h" #include "sequentialSearch.h" #define searchAmount 100 int main(int argc, char *argv[]) { int numbers[100]; int searches[searchAmount]; int i; int where; int searchSuccess; int searchUnsuccess; int percent; srand(time(NULL)); for (i = 0; i < 100; i++){ numbers[i] = rand() % 200; } for (i = 0; i < searchAmount; i++){ searches[i] = rand() % 200; } searchUnsuccess = 0; searchSuccess = 0; for(i = 0; i < searchAmount; i++){ if(seqSearch(numbers, 100, searches[i], &where)){ searchSuccess++; }else{ searchUnsuccess++; } } percent = percentRate(searchSuccess, searchAmount); printf("Total number of searches: %d\n", searchAmount); printf("Total successful searches: %d\n", searchSuccess); printf("Success Rate: %d%%\n", percent); system("PAUSE"); return 0; } sequentialSearch.h bool seqSearch (int list[], int last, int target, int* locn){ int looker; looker = 0; while(looker < last && target != list[looker]){ looker++; } *locn = looker; return(target == list[looker]); }

    Read the article

  • All things equal what is the fastest way to output data to disk in C++?

    - by user260197
    I am running simulation code that is largely bound by CPU speed. I am not interested in pushing data in/out to a user interface, simply saving it to disk as it is computed. What would be the fastest solution that would reduce overhead? iostreams? printf? I have previously read that printf is faster. Will this depend on my code and is it impossible to get an answer without profiling? Edit: Output data needs to be in text format, whether tab or comma separated. This will require formatting, precision, etc. Running in Windows.

    Read the article

  • Query on the scope of local variables in C

    - by darkie15
    All, Consider the following code: void func(void) { int a; printf ("%d", a); } int main(int argc, char **argv) { int a = 3; func(); printf("%d", a); } According to my understanding, the output should be: <junk value><3> Can anyone please confirm my understanding? My basic query is, does the compiler refer to the outer scope for a variable that has been declared but not defined? Regards, darkie

    Read the article

  • NULL pointer dereference in C

    - by user554125
    hey ive got this piece of code. It dereferences a null pointer here. But then there is an and with unsigned int. I really dont understand the whole part. Can someone explain the output.?? struct hi { long a; int b; long c; }; int main() { struct hi ob={3,4,5}; struct hi *ptr=&ob; int num= (unsigned int) & (((struct hi *)0)->b); printf("%d",num); printf("%d",*(int *)((char *)ptr + (unsigned int) & (((struct hi *)0)->b))); } The o/p i get is 44 .But how does it work?

    Read the article

  • stack of a c program

    - by ckarthickit
    how the stack would look like for the following program if I give input as 5. #include <stdio.h> int fibonacci(int number) { int retval; if (0 == number){ return 0; } if (1 == number){ return 1; } return(fibonacci(number-1) + fibonacci(number-2)); } int main() { int number = 0; int fibvalue = 1; while (1){ printf("please enter the number\n"); scanf("%d", &number); fibvalue = fibonacci(number); printf("computed fibonacci value %d\n", fibvalue); } return 1; } also give me links where i can learn about it

    Read the article

  • Mystery regarding for-loop.

    - by primalpop
    Hi, I am stuck with this mystery regarding for loop. int abc[3], i, j; for(j=0; j<3; j++); printf("%d\n", j); abc[j] = abc[j] + 3; printf("%d \n", j); Output: 3 6 Output should have been 3,3 as I've not changed value of j. Adding 3 to the jth value of abc has resulted in change of value of j by 3. This happens only while exiting from a for loop and then trying to change the value of abc[j]. Maybe I am missing something pretty obvious. Any help would be much appreciated.

    Read the article

  • Linux - Bash Redirect a String to a file

    - by user3502786
    I wrote a simple script that is reading the file content and incrementing a a number inside this file, then i'm holding the change using awk, when i'm trying ro redirect the new String using '' the whole string is redirected in one line and not like the original was which is 4 lines. #!/bin/bash -x # This script is for Incrementing build numbers path=/home/RND/abrodov file=tst.txt tst=`cat $path/$file` printf "this is the content of the file before incrementing: \n $tst" newexpr=`awk '/^Build Number/{$4=$4+1;}1' /home/RND/abrodov/tst.txt` printf "\n the new content \n $newexpr" echo $newexpr > $path/$file This is the original file before running the script: Major Release Number = 4 Minor Release Number = 1 Service Pack Release Number = 2 Build Number = 22 This is the content after i used the script: Major Release Number = 4 Minor Release Number = 1 Service Pack Release Number = 2 Build Number = 23 I'm trying to figure out how can i redirect the text in the original format which is 4 lines.

    Read the article

  • GetDiskFreeSpaceEx in winCE 5.0 emulator?

    - by vidhyarthi
    Hi, I am trying to use GetDiskFreeSpaceEx in wince5.0 emulator. This is the following code I have written. ULARGE_INTEGER notused, totalBytes, freeBytes; GetDiskFreeSpaceEx(_T("\\Windows"),&notused,&totalBytes,&freeBytes); printf(" Error in disk %d ", GetLastError()); printf(" values = notused %d,totalBytes %d,freeBytes %d",notused,totalBytes,freeBytes); *Output * 14540 PID:3db620e TID:3e5c83e Error in disk 0 14540 PID:3db620e TID:3e5c83e values = notused 25987296,totalBytes 0,freeBytes 26234880 The total bytes that I get is zero. Am I missing something or in emulator is that OK?

    Read the article

  • Address of array vs. address of array[0] - C language

    - by user324994
    My question is why does the address of an array differ from the address of its first position? I'm trying to write my own malloc, but to start out I'm just allocating a chunk of memory and playing around with the addresses. My code looks roughly like this: #define BUFF_SIZE 1024 static char *mallocbuff; int main(){ mallocbuff = malloc(BUFF_SIZE); printf("The address of mallocbuff is %d\n", &mallocbuff); printf("The address of mallocbuff[0] is %d\n", &mallocbuff[0]); } &mallocbuff is the same address every time I run it. &mallocbuff[0] is some random address every time. I was expecting the addresses to match each other. Can anyone explain why this isn't the case?

    Read the article

  • execl doesn't work in a while(1) cicle, server side; C script

    - by Possa
    Hi guys, I have a problem with a little C script who should run as a server and launch a popup for every message arriving. The execl syntax is correct because if I try a little script with main() { execl(...); } it works. When I put it in a while(1) cicle it doesn't work. Everything else is working, like printf or string operation, but not the execl. Even if I fork it doesn't work. I really don't know what I can do ... can anyone help me? Thanks in advice for your help and sorry for my bad english. Here's the complete server C code. #include <arpa/inet.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <sys/socket.h> #include <unistd.h> #include <string.h> #define BUFLEN 512 #define PORT 9930 void diep(char *s) { perror(s); exit(1); } int main() { struct sockaddr_in si_me, si_other; int s, i, slen=sizeof(si_other), broadcastPermission; char buf[100], zeni[BUFLEN]; if ((s=socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP))==-1) diep("socket"); broadcastPermission = 1; if (setsockopt(s, SOL_SOCKET, SO_BROADCAST, (void *) &broadcastPermission, sizeof(broadcastPermission)) < 0) diep("setsockopt() failed"); memset((char *) &si_me, 0, sizeof(si_me)); si_me.sin_family = AF_INET; si_me.sin_port = htons(PORT); si_me.sin_addr.s_addr = htonl(INADDR_ANY); if (bind(s, &si_me, sizeof(si_me))==-1) diep("bind"); while (1) { if (recvfrom(s, buf, BUFLEN, 0, &si_other, &slen)==-1) diep("recvfrom()"); //printf("Received packet from %s:%d\nData: %s\n", inet_ntoa(si_other.sin_addr), ntohs(si_other.sin_port), buf); strcpy(zeni, ""); strcat(zeni, "zenity --warning --title Hack!! --text "); strcat(zeni, buf); printf("cmd: %s\n", zeni); //system (zeni); execl("/usr/bin/zenity", "/usr/bin/zenity", "--warning", "--title", "Warn!", "--text", buf, (char *) NULL); } close(s); return 0; }

    Read the article

  • Correct expression for checking leap years

    - by Debanjan
    What will be the exact definition of leap year? AFAIK "A year which is divisible by 4 is a leap year. But for century years' the years which are divisible by 400 is a leap year." But that definition makes 100, 200, 300, 400.... upto 1700 NOT LEAP years! But in Gregorian calendar all of them are all leap year, check this out. You can also try "call 1700" in Linux to verify. So the correct algorithm for leap years would be: if ( (year % 4 == 0) && ( year <= 1700 || year % 100 != 0 || year % 400 == 0 )) printf("%d is a leap year.\n", year); else printf("%d is not a leap year.\n", year); But is this specific to Gregorian calendar? Even if that is the case why is it not mentioned here? Regards, PS:The history of Gregorian callender seems interesting check out the September month of 1752.

    Read the article

  • overflow technique in stack

    - by metashockwave
    int main(void) { problem2(); } void doit2(void) { int overflowme[16]; //overflowme[37] =0; } void problem2(void) { int x = 42; doit2(); printf("x is %d\n", x); printf("the address of x is 0x%x\n", &x); } Would someone help me understand why overflowme[37] =0; from the doit2 function will overwrite the value of x? (please include Program Counter and Frame Pointer of the function doit2 in your explanation) Thank you! It works every time with Project properties-Configuration properties-C/C++ -Code Generation-Basic Runtime Checks set to "Default". so it's not an undefined behavior.

    Read the article

  • Beginner C: error: control reaches end of non-void function?

    - by Ting
    I'm trying to make a greedy algorithm and I get this error: greedy2.c:27:1: error: control reaches end of non-void function [-Werror,-Wreturn-type] } ^ 1 error generated. with this code: int man(int argc, char* argv[]) { float amount; do { printf("Input dollar amount owed:\n"); amount = GetFloat(); } while (amount <= 0); int coins = 0; while (amount >= 0.25); { amount = amount - 0.25; coins++; } printf("Number of coins to use: %d\n", coins); } What is wrong with my curly braces, and how do I fix it?

    Read the article

  • Java-Recursion: When does statements after a recursive method call executes

    - by Ruru Morlano
    When are statements after the method call itself going to execute? private void inorderHelper(TreeNode node) { if ( node==null ) return; inorderHelper(node.leftNode); System.out.printf("%d", node.data); inorderHelper(node.rigthNode); } All I can see is that the line of codes inorderHelper(node.leftNode) will continue to iterate until node == null and the method terminates immediately before node.data is printed. I think that I didn't get well recursion but all examples I can find doesn't have statements after the recursive call. All I want to know is when are statements like System.out.printf("%d",node.data) going to execute before the method return?

    Read the article

< Previous Page | 28 29 30 31 32 33 34 35 36 37 38 39  | Next Page >