char * 字符串指针使用比较麻烦,需要malloc和free
很多情况下,我们不很关心程序的内存占用,这种情况下使用固定长度的字符数组,能简化编程。
用typedef 定义固定长度字符数组,增加程序可读性
#include <stdio.h>
#include <string.h>
/*
init_arr and show_arr might be used in other people,
so they use char*[] as parameter
*/
void init_arr(size_t argc, char* argv[])
{
size_t i = 0;
for ( ; i < argc ; i++)
{
strcpy(argv[i], "init value");
}
}
void show_arr(size_t argc, char* argv[])
{
size_t i = 0;
for ( ; i < argc ; i++)
{
printf("%s\n", argv[i]);
}
}
/*
-----------------------------------------------------------------
*/
#define WORD_SIZE 255
typedef char WORD[WORD_SIZE];
void word_to_pchar(char* arr_char[], WORD arr_word[], size_t argc)
{
size_t i =0;
for ( ; i < argc ; i++)
{
arr_char[i] = arr_word[i];
}
}
/*
the local variable arr , arr_word is alloced and freed automatically
*/
int main(void)
{
size_t argc = 5;
char* arr[argc];
WORD arr_word[argc];
word_to_pchar(arr, arr_word, argc);
init_arr(argc, arr);
show_arr(argc, arr);
return 0;
}