gpt4 book ai didi

c - 为字符串分配内存

转载 作者:太空宇宙 更新时间:2023-11-04 05:13:33 24 4
gpt4 key购买 nike

我尝试分配内存,存储一个字符串然后打印它,但我认为它不起作用。

#include<stdio.h>
#include<windows.h>
int main()
{
char* allochere;
allochere = malloc(sizeof(char));
*allochere = "Hello";
printf("%s",allochere);


return 0;
}

最佳答案

*allochere 的赋值只为未初始化字符串的第一个字符赋值。分配的值对于启动来说是无意义的,因为分配的右侧是一个指针。 (如果你打开编译警告,编译器会警告你这样的赋值有问题。)

要正确初始化字符串,需要调用strcpy复制字符串:

strcpy(allochere, "Hello");

此外,您需要分配具有正确大小的 allochere 来保存您打算放在那里的字符串:

allochere = malloc(strlen("Hello") + 1);

关于c - 为字符串分配内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19191817/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com