<span style="font-family:KaiTi_GB2312;font-size:24px;">#include<stdio.h> #include<stdlib.h> //要使用malloc(),必须包含此库文件 void main() { char count, *ptr1, *p; ptr1 = malloc(27*sizeof(char)); ptr1[26] = 0;//字符串要加0 if (ptr1 == NULL) { puts("没有足够的空间卡可以分配!\n"); } p = ptr1;//将ptr1指针地址赋值给指针p for (count= 65; count < 91; count++) { *(p++) = count; } printf("打印ptr1:\n"); puts(ptr1);//打印出ptr1中的所有值 printf("打印P:\n"); p = ptr1; //因为此时P指针地址已经指到了0处,所以必须赋值。 puts(p); free(ptr1); //释放malloc()分配的内存 system("pause"); } </span>
运行结果:
<span style="font-family:KaiTi_GB2312;font-size:24px;">#include<stdio.h> #include<stdlib.h> //要使用malloc(),必须包含此库文件 void main() { char *message;//声明一个名为message的指针,但此时不指向任何地址。 char *message1 = "I am mini ,I am very well ! ";//mesage1是指向该字符串的指针。 //等价于 char *message2[] = { "I am mini ,I am very well ! " }; //如果编写程序时,知道要分配多少空间,则可以使用这种方式。 /* 也可以使用malloc()动态分配内存空间 malloc()是C语言中的一个内存分配函数。malloc()返回一个地址,该函数返回类型为void指针。 */ char *str; str = (char *)malloc(100);//为字符串分配100字节空间 if (str == NULL)//当没有足够的内存空间可以分配,则返回NULL { printf("没有足够的空间!\n"); exit(1); } int *numbers; numbers = (int *)malloc(50 * sizeof(int));//为int类型分配空间 float *numbers1; numbers1 = (float *)malloc(10 * sizeof(float)); //存储一个字符的内存空间 char *ptr; ptr = malloc(1);//分配1字节的空间 *ptr = 'x';//将字符x存入*ptr中 printf("分配空间完毕!\n"); system("pause"); }</span>
运行结果:
C语言之深入指针与字符串
时间: 2024-10-07 02:57:26