69,377
社区成员
发帖
与我相关
我的任务
分享
char *p[5];
for(int i=0;i<5;i++)
p[i]=(char *)malloc(sizeof(char)*n);
char **p=(char **)malloc(sizeof(char *)*n);
for(int i=0;i<x;i++)
a[i]=(char *)malloc(sizeof(char)*m);
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char *argv[])
{
char key[] = "ABCDEFG;1234567;1234ABC";
int i, m, n;
char *ptr, *end;
char *buf;
m = 0, n = 0;
ptr = key;
while ((end = strchr(ptr, ';')) != NULL) {
n++;
if (m < end - ptr)
m = end - ptr;
ptr = end + 1;
}
n++;
printf("m=%d n=%d\n", m, n);
buf = malloc(n * (m + 1));
ptr = key;
i = 0;
while ((end = strchr(ptr, ';')) != NULL) {
*end = '\0';
strcpy(&buf[i++ * (m + 1)], ptr);
ptr = end + 1;
}
strcpy(&buf[i++ * (m + 1)], ptr);
for (i = 0; i < n; i++)
printf("arr[%d]='%s'\n", i, &buf[i * (m + 1)]);
free(buf);
}
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[])
{
char key[] = "ABCDEFG;1234567;1234ABC";
int m = 0, n = 0;
char *ptr, *end;
ptr = key;
while ((end = strchr(ptr, ';')) != NULL) {
n++;
if (m < end - ptr)
m = end - ptr;
ptr = end + 1;
}
n++;
m++;
printf("m=%d n=%d\n", m, n);
char arr[n][m];
int i = 0;
ptr = key;
while ((end = strchr(ptr, ';')) != NULL) {
*end = '\0';
strcpy(arr[i++], ptr);
ptr = end + 1;
}
strcpy(arr[i++], ptr);
for (i = 0; i < n; i++) {
printf("arr[%d]='%s'\n", i, arr[i]);
}
}