簡體   English   中英

C語言:char數組問題和eclipse警告

[英]C Language: char array issues and warnings by eclipse

我剛回到Eclipse上用C進行開發,我遇到了大問題,我不確定如何解決,不記得我以前在開發時遇到過這樣的問題。 無論如何,我將指出2個問題(我的示例在此處易於發布):

#include <stdio.h>

int change_array(char *str, char *a[]) {
    a[0] = "changed [0]";
    if (fgets(str, 200, stdin) != NULL) {
    }
    return 0;
}

int main() {
    char str[200];
    char a[15][200];
    change_array(str, a);
    printf("a[0]: %s\n", a[0]);
    printf("str: %s\n", str);
    return 0;
}
  1. 在“ change_array(str,a)”行中得到警告: 從不兼容的指針類型傳遞“ change_array”的參數2 [默認啟用] -為什么?
  2. 運行我的“無所事事”代碼后,示例輸出為:
    • 一些價值
    • a [0]:? <-------出現有線字符
    • str:某些值

問題在這里... int change_array(char *str, char *a[])

的尺寸a是不確定的,所以它不知道多遠,每步*aa是指向字符數組。 但是,您要傳遞200個字符的數組。 因此,不兼容的類型錯誤。

我相信您的問題會隨着...

int change_array(char *str, char (*a)[200])

在這種情況下, a是指向200個字符的數組的指針,編譯器現在知道將a每個索引步進多遠

暫無
暫無

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

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