我是一個新手程序員,我很難感謝任何意見與我的問題在這裏。C字符串引用voodoo
我做了一個過程,它在得到緩衝的字符串並解析它在三個cunks,由第一2「;」分隔。
我試圖做的是傳遞3個字符指針,在那裏我將存儲我的分析字符串。但是我在調用函數中得到的只是內存垃圾。我究竟做錯了什麼?
void parseomensaje(char buf[256], char **idNodo, char **idMensaje, char **mensaje){
char *temp;
temp=(char *)malloc(sizeof(buf));
strcpy(temp, buf);
printf("\ntemp adentro de la funcion = %s\n", temp);
idNodo = strtok (temp,";");
idMensaje = strtok (NULL, ";");
mensaje = strtok (NULL, "\0");
printf("\nADENTRO\nidNodo: %s\nidMensaje: %s\nmensaje: %s", idNodo, idMensaje, mensaje);
}
調用該函數是這樣的:
char *idnod=NULL;
char *idmen=NULL;
char *men=NULL;
idnod=(char *)malloc(sizeof(buffer));
idmen=(char *)malloc(sizeof(buffer));
men=(char *)malloc(sizeof(buffer));
parseomensaje (buffer, &idmen, &idnod, &men);
後parseomensaje執行緩衝區包含其原始的字符串,但idmen,idnod和男人是空白。我正在閱讀指南,指針名稱是指針本身,所以這是通過引用傳遞參數,但在字符串的情況下,我需要將指針地址傳遞給指針的指針... ...一樣的東西... I was reading it from here,但我仍試圖找出答案。
PD:我很抱歉,我的英語水平,請隨時指向任何錯誤在我的寫作。 :)
不是你的問題的解決方案,但永遠不會由'malloc'返回的指針指針 – Michael
緩衝區的大小是多少? –