我有一个非常基本的疑问。假设我声明了一个指向字符串的指针。
char *data;
并按如下方式分配内存
data = malloc(13*sizeof(char));
我的问题是如何初始化字符串。 是
data = NULL;
正确的事情。
谢谢
答案 0 :(得分:2)
如果要将字符串初始化为空字符串,则
*data = '\0';
是正确的做法。你所做的是让你的变量指向NULL,而不是你分配的13个字节的内存。
答案 1 :(得分:2)
如果您只想要一个空字符串,data[0] = '\0'
就可以了。像示例所示设置data = NULL
只会泄漏内存分配。
答案 2 :(得分:1)
您必须设置 memset
答案 3 :(得分:1)
答案 4 :(得分:0)
查看free功能。
答案 5 :(得分:0)
不,考虑memset / memcpy或strncpy函数。 随着
memset(void *b, int c, size_t len);
你可以初始化内存区域,用memcpy或strncp可以将数据复制到内存区域。如果你处理字符串,你应该使用strncpy。
玩得开心