gpt4 book ai didi

c - C 中的 malloc 字符串

转载 作者:行者123 更新时间:2023-11-30 19:57:35 25 4
gpt4 key购买 nike

我不太确定我是否了解 malloc 到底是如何工作的。

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

int main() {

char * string = (char*) malloc(sizeof(char));
string = "abc";

int * test = (int*) malloc(1 * sizeof(int));
*(test) = 5;
*(test + 1) = 6;


}

我预计这会输出一个错误,因为我指定给字符串的值大于一个字符,但它似乎编译得很好。

我有几个问题:

  1. “字符串”现在保存在哪里?它在堆上我分配的一个空间之后的内存空间上吗?

  2. 为什么 char 让我直接指定而 int 只能通过指针指定?

我真的不知道我在这里做什么

最佳答案

这段代码

string = "abc";

将字符串常量“abc”的地址分配给string变量,该变量是一个char *。从 malloc() 调用返回的内存地址(位于 string 中)被覆盖并丢失。

关于c - C 中的 malloc 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41804186/

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