这是我的代码:
#include <stdio.h>
#include<stdlib.h>
char *s = (char *)malloc (40);
int main(void)
{
s="this is a string";
printf("%s",s);
}
我收到以下错误:
error: initializer element is not constant char *s = (char *)malloc (40);
最佳答案
如果你想在代码中初始化它,你不需要以这种方式分配内存,我的意思是:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char *s = "this is a string"; // char s[] = "this is a string";
printf("%s",s);
return 0;
}
在这种情况下就足够了。如果你真的想将 const char
字符串分配给你的 char 数组,这个主题应该会给你启发:Dynamically allocating memory for const char string using malloc()
关于c - C 中的 "initializer element is not constant char"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32653942/