我目前正在嘗試在c中創建一個程序,它將返回一個指向2個字符串數組的指針。第一個是字符串s在奇數位置的字符,第二個是在偶數位置的字符。我在C中沒有經驗,所以我需要一些關於這個程序的幫助。我一直在嘗試使用python和java知道的代碼進行編碼,但它似乎沒有遵循與指針相同的原則。這裏是我的代碼:一個c程序,它返回一個指向2個字符串數組的指針
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char **parity_strings(const char *s){
char dest[malloc((char)sizeof(s)/2 + 1)][malloc((char)sizeof(s)/2 + 1)]; //trying to allocate memory to an array of size 2 which will hold 2 strings.
int i;
for(i = 0; i < sizeof(s); i+= 2){ //iterating through odd strings
s[0] += dest[i];
}
for(i= 2; i< sizeof(s); i += 2){ //iterating through even strings (I suppose i could have just appended using 1 for loop but oh well
s[1] += dest[i];
}
return dest;
}
int main(int argc, char **argv) {
char **r = parity_strings(argv[1]);
printf("%s %s %s\n", r[0], r[1], argv[1]);
return 0;
}
內存分配也只是一個痛苦...我不知道,如果它正在做我打算做它。我試圖將字符串的大小以字節+ 1字節分配給數組Dest的每個索引。
有關如何解決此問題的任何想法?謝謝。