好久都没用C语言了,随便整整结果就出错了(不太容易发现的错误),很多初学者容易忽略的问题
#include<stdio.h>
#include<stdlib.h>
voidTest(int *pArr,intcount);
voidmain()
{
int A[10]={0};
int A[10]={0};
for (inti=0; i<10; i++)
{
A[i] =i+1; }
A[i] =i+1; }
Test(A, 10);
for(i=0; i<10; i++)
{
printf("%3d",A[i], 10); }
printf("%3d",A[i], 10); }
}
voidTest(int *pArr,intcount)
{ pArr = (int *)malloc(sizeof(int)*10);
for(inti=0; i<count; i++)
{ printf("%4d",*pArr++);}
}
危险!!(只分配未释放,内存会被耗尽的)
总结:
*动态存储空间最多是用于字符串的操作。
*动态存储空间最多是用于字符串的操作。
*malloc一般和strlen()相结合使用。
*malloc一定要和free匹配出现,一一对应!
*不能学尼采,“尼采曾经自诩是太阳,指给予,不取得”,我们内存分配完必须记得释放!!!
*不能学尼采,“尼采曾经自诩是太阳,指给予,不取得”,我们内存分配完必须记得释放!!!