簡體   English   中英

如何將C字符串數組傳遞給函數

[英]How to pass an array of C-Strings to a function

通常,我只是將數組傳遞給函數,但是,我正在做作業,教授說要使用C字符串數組,而我想使用函數。 但是,我想不起來如何將其發送給函數。 任何幫助都會很棒。

將其作為雙指針傳遞:

type myFunc(char **array) {
    ...
}

好吧,由於c字符串實際上只是一個字符數組,難道您不只是傳遞一個字符數組數組嗎?

好吧,您知道數組的語法嗎? 您知道函數的語法嗎? 您如何猜測數組將作為參數傳遞?

如果不確定,請查看C / C ++教科書。

char **arr;

arr = malloc (sizeof (char *) * string_count);
for (i=0; i<string_count; i++)
{
  /* get string size */
  arr[i] = malloc (sizeof (char) * this_string_size);
  /* copy string into allocated */
}

function (char **arr, int string_count)
{
}

使用后請記住釋放內存。

要么

char *arr[NOS_OF_SRINGS];

for (i=0; i<NOS_OF_STRINGS; i++)
  arr[i] = malloc (sizeof (char) * string_length);


function (char *arr[NOS_OF_STRINGS])
{
}

記住要釋放分配的內存塊。

要么

char arr[NOS_OF_STRINGS][STR_LENGTH];

/* copy stuffs */

function (char arr[NOS_OF_STRINGS][STR_LENGTH])
{
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM