gpt4 book ai didi

c - malloc 不存在的物理地址错误

转载 作者:太空宇宙 更新时间:2023-11-04 01:04:53 26 4
gpt4 key购买 nike

我试图弄清楚如何在 C 中正确使用 malloc,但遇到了一个我遇到麻烦的错误。

我的代码:

#include <stdio.h>
#include <stdlib.h>

int main() {

char * str;

str = (char *)malloc(10);

str = "Hello World";

str[0] = 'R';

return EXIT_SUCCESS;
}

我的 Valgrind 输出:

==23136== Process terminating with default action of signal 10 (SIGBUS)
==23136== Non-existent physical address at address 0x100000F92
==23136== at 0x100000F66: main (test.c:12)

我知道问题是由于我试图将字母 'R' 分配给 str,但我的印象是使用 malloc 的优势这种情况(与 char str[10] = "Hello World" 不同)是能够编辑我的字符串的内容。

谢谢!

最佳答案

str = "Hello World"; 使str 指向一个常量字符串"Hello World",你分配的内存将成为内存泄漏。

关于c - malloc 不存在的物理地址错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25831556/

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