小编Rog*_*ous的帖子

将缓冲区 (char*) 传递给 C 中的函数

我将缓冲区 (char*) 传递给 C 中的函数。

在函数内部,我为缓冲区分配内存并附加一个字符串(来自虚拟服务器的响应)。当在函数内部打印时,字符串将显示为从服务器发送的。

当尝试从函数外部读取缓冲区时,我没有得到我需要的结果:

A。// 字符* server_message; // 不起作用,错误:: 分段错误(核心已转储)

b. // char* server_message = calloc((BUFFER_SIZE) + 1, sizeof(char)); // 不起作用,没有生成错误,下面的 server_message 的 printf 打印一个空值:: ==> server_message:: || ||

C。char* server_message = calloc((1000 * BUFFER_SIZE) + 1, sizeof(char)); // 分配超出所需内存的工作:: ==> server_message:: || 2016-03-08 12:20:13 你好 ||

我根本不喜欢选项 c,因为我分配的内存超出了我的需要。出于测试目的,BUFFER_SIZE 当前设置为 10。

这是调用部分::

write_to_server(client_socket, message, server_message);
free(message);
printf("\n\n==> server_message:: || %s ||\n\n", server_message);

if (server_message != NULL)
    free(server_message);
Run Code Online (Sandbox Code Playgroud)

这是 write_to_server 函数代码:

void write_to_server(int file_descriptor, char* message, char* server_message) …
Run Code Online (Sandbox Code Playgroud)

c memory size buffer allocation

-1
推荐指数
1
解决办法
9854
查看次数

标签 统计

allocation ×1

buffer ×1

c ×1

memory ×1

size ×1