malloc 函数 和 strcpy
现有以下代码:
#include <string.h>
#include <stdlib.h>
#include <malloc.h>
char** fillContent(char **content,unsigned int size)
{
unsigned int P_maxLen=0;
char **context=(char **)malloc(size*30*sizeof(char));
if(context!=NULL)
{
for(unsigned int i=0;i<size;i++)
{
strcpy(context[i],content[i]);
if(strlen(content[i])>P_maxLen)
P_maxLen=strlen(content[i]);
}
}
return context; //注意free()函数自行添加
}
/*
* main.C
*
* Created on: 2013-2-18
* Author:
*/
#include <malloc.h>
#include <iostream>
#include <stdlib.h>
#include <string.h>
using namespace std;
int main()
{
char **as=(char **)malloc(2*30*sizeof(char));
if(as!=NULL)
{
char b[][20]={"asdf","adfdff"};
for(int i=0;i<2;i++)
{
strcpy(as[i],b[i]);
cout<<as[i]<<endl;
}
}
for(int i=0;i<2;i++) cout<<as[i]<<endl;
free(as);
return 0;
}
#include <string.h>
#include <stdlib.h>
#include <malloc.h>
char** fillContent(char **content,unsigned int size)
{
unsigned int P_maxLen=0;
char **context=(char **)malloc(size*4);//
if(context!=NULL)
{
for(unsigned int i=0;i<size;i++)
{
context[i] = (char*)malloc(strlen(content[i]) + 1);//
strcpy(context[i], content[i]);
if(strlen(content[i])>P_maxLen)
P_maxLen=strlen(content[i]);
}
}
return context; //注意free()函数自行添加
}
char** fillContent(char **content,unsigned int size)
{
unsigned int P_maxLen=0;
char **context=(char**)malloc(size*sizeof(char*));
for (int n=0; n<size;++n)
{
context[n] = (char *)malloc(30*sizeof(char));
}
if(context!=NULL)
{
for(unsigned int i=0;i<size;i++)
{
strcpy(context[i],content[i]);
if(strlen(content[i])>P_maxLen)
P_maxLen=strlen(content[i]);
}
}
return context; //注意free()函数自行添加
}