gpt4 book ai didi

c - 在 C 程序中使用 malloc( ) 和 free( ) 而不获取 (lldb)

转载 作者:行者123 更新时间:2023-11-30 17:53:32 25 4
gpt4 key购买 nike

这是我使用 malloc() 编写的第一个程序和free() 。它对我来说看起来是正确的,当我引用我的书时,它看起来与书中的示例非常相似。但是,当我运行该程序时,我得到 (lldb)迅速的。

我输入 8 作为元素数量,2 作为初始化值。我的 xcode 编译器返回“(lldb)”。

有人能引导我走向正确的方向吗?

#include <stdio.h>
#include <stdlib.h>
int * make_array(int elem, int val);
void show_array(const int ar[], int n);
int main(void)
{
int *pa;
int size;
int value;

printf("Enter the number of elements: ");
scanf("%d", &size);
while (size > 0) {
printf("Enter the initialization value: ");
scanf("%d", &value);
pa = make_array(size, value);
if (pa)
{
show_array(pa, size);
free (pa);
}
printf("Enter the number of elements (<1 to quit): ");
scanf("%d", &size);
}
printf("Done.\n");
return 0;
}

int * make_array(int elem, int val)
{
int index;
int * ptd;

ptd = (int *) malloc(elem * sizeof (int));

for (index = 0; index < elem; index++)
ptd[index] = val;

return ptd;
}

void show_array(const int ar[], int size)
{
int i;
for (i = 0; i < size; i++)
printf("%d",ar[i]);
}

最佳答案

您的程序将编译并运行(可能如您所期望的那样)。以下是示例输出:

Enter the number of elements: 5
Enter the initialization value: 12
1212121212
Enter the number of elements (<1 to quit): 8
Enter the initialization value: 2
22222222
Enter the number of elements (<1 to quit): 100
Enter the initialization value: 34
34343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434
Enter the number of elements (<1 to quit): -1
Done.

关于c - 在 C 程序中使用 malloc( ) 和 free( ) 而不获取 (lldb),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15513122/

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