gpt4 book ai didi

c - 如何确定我的 char* 所需的内存量?

转载 作者:太空宇宙 更新时间:2023-11-04 06:41:35 25 4
gpt4 key购买 nike

我有这个简单的程序,需要知道我应该根据什么选择变量 (howToPredectThisNumber)(即 char* 字符串的大小) ).

在这种情况下,选择哪个最好,char[] 还是 char*??

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

typedef struct
{
char* name;
}Emp;

void init(Emp** emp)
{
int howToPredectThisNumber = 50;
*emp = malloc(sizeof(Emp));
(*emp)->name = NULL;
(*emp)->name = calloc(howToPredectThisNumber, sizeof(char*));
}

void release(Emp** emp)
{
free((*emp)->name);
free(*emp);
}

void setName(Emp* emp, char* newName)
{
strcpy(emp->name, newName);
}
char* getName(Emp* emp)
{
return emp->name;
}

int main(void)
{
Emp* emp;
init(&emp);
setName(emp, "Muhammad Abdullah");
printf("%s", getName(emp));
release(&emp);

return 0;
}

最佳答案

我想你应该推迟扣除,直到你知道你想要复制什么:

void setName(Emp* emp, char* newName)
{
free(emp->name);
emp->name = malloc( strlen( newName ) + 1 );
strcpy(emp->name, newName);
}

关于c - 如何确定我的 char* 所需的内存量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7385436/

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