编程语言常见问题记录

更新自2019.1.15

编程语言常见问题记录

1.C语言

1.1 动态数组

使用calloc函数进行动态一维数组分配。但是不能使用memset函数进行初始化。而正规申请的定长数组是可以使用memset函数进行置零初始化的。
例如:要申请一个p[n]:

#include <stdio.h>
#include <stdlib.h>
int main()
{
	char *p, *q;
	int n;		//n维数组
	p = (char *)calloc(n, sizeof(char));	//申请了一个n维数组p
	//还有一种方式为申请n+1维数组,并且令第n+1位元素为\0
	q = (char *)calloc(n + 1, sizeof(char));
	q[n] = '\0';	//第n+1个元素为q[n]
	return 0;
}

使用calloc函数进行动态二维数组分配,例如,要申请一个p[m][n]

int main()
{
	char *p;
	int i, m, n;		//n维数组
	p= (char **)calloc(m, sizeof(char **));//分配指针数组,即变为p[m][]
	for (i = 0; i < m; i++)
	{
		p[i] = (char *)calloc(n, sizeof(char*));//对每一行分配n个元素,变为p[m][n]
	}
	return 0;
}

1.2 统计指针有效数字或字符串

1、字符型指针(char *)

//char* s = "abcderwasfa";	//定义指针型字符数组
int GetLenth(char* s)
{
	int len;
	len = strlen(s);//只能对char型数组使用
	return len;
}

2、数字型数组(int *)
除了在定义数字型数组的时候给定长度以外,题主不知道其他的统计方式了!!!

//定义数字型指针数组
int a[5]={....}
int* pt[5];
for(i=0;i<5;i++)
{
pt[i] = &a[i];
}

猜你喜欢

转载自blog.csdn.net/weixin_42152531/article/details/86496554