本文目录
c 未知长度数组怎么定义
C语言是面向过程的语言,不支持类,要定义类你应该使用C++编写。C99支持变长数组,可以用变量定义数组长度,如:int n;scanf("%d",&n);int a;
请问C语言中,如何在结构体内定义长度不确定的数组呢
两种方法:一种是采用指针, 动态分配内存另一种请搜索"柔性数组", 这种方式同样需要在堆中动态分配内存.
c语言中如何自定义数组长度
动态分配的数组可以自定义数组的长度,示例如下:
#include 《stdio.h》#include 《string.h》#include 《stdlib.h》int main(){printf("输入要分配的内存大小:");int size;scanf("%d", &size); //输入自定义的数组长度int *pstart = (int *)malloc(sizeof(int) *size);if (pstart==0) {printf("不能分配内存\n");return 0;}memset(pstart, 0x00, sizeof(int) * size);int inx;for (inx=0; inx!=size; ++inx) pstart = inx;for (inx=0; inx!=size; ++inx) printf("%d\t", pstart);printf("\n");return 0;}
C语言如何定于未知长度的字符串
第1个输出是810。sizeof运算符得到的是数组的占用字节的大小,在定义数组a的时候没有指明大小,编译器根据初始化的内容来决定a的大小,"abcdefg"是个字符串,连同表示字符串结束的’\0’共有8个字符,1个字符类型占用1个字节,所以sizeof(a)是8。在定义数组b的时候已经指明了大小,所以sizeof(b)是10。第2个输出是520。strlen函数是计算字符串的长度,字符串以’\0’表示结束,所以strlen在遇到hello后面的’\0’时就会返回。sizeof跟第1个问题一样。