2
“字符”我有下面的代码段,这时候我编译它,我得到:语法错误使用C
smash.c:22 error: syntax error before "char"
我不明白问题出在哪里。 (错误消息中第22行标记为/*22*/
,但行号未出现在代码中)。我该如何纠正这个错误?
/*some comments...*/
/*some more comments...*/
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <stdlib.h>
#include <signal.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <errno.h>
#include "dir_handling.h"
#include "var_handling.h"
#define MAXLENGTH 80
void error_print (char* str)
{
/*22*/ char *error_message=(*char)malloc((strlen(str)+strlen("smash error: > \"\"\n")+1)*sizeof(char));
strcpy (error_message,"smash error: > \"");
strcat(error_message,str);
strcat(error_message,"\"\n");
perror (error_message);
free (error_message);
// printf ("smash error: > \"%s\"\n",str);
}
...
如果我不投'的malloc返回“以后会不会出问题? – SIMEL 2011-04-10 23:49:23
@Ilya Melamed:不,它不会。 – 2011-04-10 23:50:17
@Ilya Melamed:恰恰相反,* cast * malloc的结果可能会导致后面的问题。 – AnT 2011-04-10 23:56:29