代码拉取完成,页面将自动刷新
//常见的几个笔试题
//4.1
//做法2
//char* GetMemory(char *p)
//{
// p= (char*)malloc(100);
// return p;
//}
//
//void Test(void)
//{
// char* str = NULL;
// str=GetMemory(str);
// strcpy(str,"helloc world");
// printf(str);
// //释放
// free(str);
// str = NULL;
//}
//
//int main()
//{
// Test();
// return 0;
//}
////4.2
//char* GetMemory(void)
//{
// static char p[] = "hello world";
// return p;
//}
//
//void Test(void)
//{
// char* str = NULL;
// str = GetMemory();
// printf(str);
//}
//
//int main()
//{
// Test();
// return 0;
//}
//void GetMemory(char** p, int num)
//{
// *p = (char*)malloc(num);
//}
//void Test(voud)
//{
// char* str = NULL;
// GetMemory(&str,100);
// strcpy(str,"hello");
// printf(str);
//}
//int main()
//{
// Test();
// return 0;
//}
//void Test(void)
//{
// char* str = (char*)malloc(100);
// strcpy(str,"hello");
// free(str);
// if (str != NULL)
// {
// strcpy(str, "world");
// printf(str);
// }
//}
//int main()
//{
// Test();
// return 0;
//}
//常规定义
/*struct S
{
int i;
int arr[10];
};*/
//柔性数组
//struct S
//{
// int i;
// int arr[];//未知大小的-柔性数组成员-这里数组的大小是可以调整的
// //正常情况下数组在申明的时候,必须指定数组的长度
//};
//int main()
//{
// struct S* ps = (struct S*)malloc(sizeof(struct S)+5*sizeof(int));
// ps->i = 10;
// int j = 0;
// for (j=0;j<5;j++)
// {
// ps->arr[j] = j;//0 1 2 3 4
// printf("%d ",ps->arr[j]);
// }
// struct S*pps=(struct S*)realloc(ps,10*sizeof(int)+sizeof(int));
// //判断是否开辟成功
// if (pps != NULL)
// {
// ps = pps;
// }
// //继续给增容后的arr数组赋值
// for (j = 5; j < 10; j++)
// {
// ps->arr[j] = j;
// printf("%d ", ps->arr[j]);
// }
// //动态开辟的空间需要释放
// free(ps);
// ps = NULL;
// return 0;
//}
//柔性数组
struct S
{
int i;
int *arr;
};
int main()
{
//给S类型的结构体指针变量开辟空间
struct S* ps = (struct S*)malloc(sizeof(struct S));
//给S类型的结构体指针变量的arr成员开辟空间
ps->arr =(int*)malloc(sizeof(int)*5);
int j = 0;
//使用开辟的空间
for (j = 0; j < 5; j++)
{
ps->arr[j] = j;//0 1 2 3 4
printf("%d ",ps->arr[j]);
}
//调整空间大小并使用
int* pss = (int*)realloc(ps->arr,10*sizeof(int));
if (pss != NULL)
{
ps->arr = pss;
}
for (j = 5; j < 10; j++)
{
ps->arr[j] = j;
printf("%d ",ps->arr[j]);
}
//释放
free(ps->arr);
ps->arr = NULL;
free(ps);
ps = NULL;
return 0;
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。