0
我一直在研究如何合併數組,並使用可變參數創建函數。然後它讓我想到,'我不能把兩者結合起來嗎?'。我想出了這個功能。根據我的理解,它應該工作,但我得到的錯誤。誰能告訴我我做錯了什麼?如何合併傳遞給具有可變參數的函數的數組
#include <stdio.h>
#include <stdarg.h>
char* merge(int num, ...)
{
va_list list;
char arr[9] = {0};
char *temp;
int i;
int j;
int k=0;
va_start(list,num);
for(i=0;i<num;i++)
{
temp = va_arg(list,char[]);
j = 0;
while(temp[j] != 0x00)
{
arr[k] = temp[j];
j++;
}
k++;
}
va_end(list);
return arr;
}
int main()
{
char data_1[] = "my";
char merged_array[9] = "legs";
int n=0;
//merged_array = merge(1, data_1);
while(merged_array == 0x00)
{
printf("%s\n",merged_array[n]);
n++;
}
}
你覺得有發生'arr'在函數返回時? – Olaf
畢竟這裏需要變量參數?我想你正在試驗stdarg – sjsam
@Olaf我認爲arr的地址傳遞給merged_array並且arr被銷燬。 – Caleb