簡體   English   中英

警告:賦值使指針從整數變成整數,而不進行強制轉換[-Wint-conversion]

[英]Warning: assignment makes integer from pointer without a cast [-Wint-conversion]

代碼聲明:

$char Primeiro[5][20] = {"Pedro", "Tiago", "Ana", "Bruno", "Camila"};
$char Meio[5][20] = {"Oliveira", "Antunes", "Ferreira", "Santos", "Cunha"};
$char Sobrenome[5][20] = {"Cardoso", "Silva", "Azevedo", "Monteiro", "Soares"};
$char *vNomeCompleto[125][60];
$ vNomeCompleto[i][i] = strcat(Primeiro[iPrimeiro], strcat(Meio[iSegundo], Sobrenome[iTerceiro]));

我無法使向量vNomeCompleto接收其他三個向量。 有人能幫我嗎?

  1. vNomeCompleto聲明為char *指針數組-沒有分配用於字符串的內存,僅分配了指針。
  2. strcat(Meio [iSegundo],Sobrenome [iTerceiro])-您試圖向具有20個最大len的Meio [i]添加20個以上的字符-在某些情況下會出現“越界”錯誤。 第一個strcat也是一樣。

這是一個工作示例:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
    int i;
    char Primeiro[5][20] = { "Pedro", "Tiago", "Ana", "Bruno", "Camila" };
    char Meio[5][20] = { "Oliveira", "Antunes", "Ferreira", "Santos", "Cunha" };
    char Sobrenome[5][20] = { "Cardoso", "Silva", "Azevedo", "Monteiro", "Soares" };
    char vNomeCompleto[5][400];

    for (i = 0; i < 5; ++i)
    {
        strcpy(vNomeCompleto[i], Primeiro[i]);
        strcat(vNomeCompleto[i], Meio[i]);
        strcat(vNomeCompleto[i], Sobrenome[i]);
    }

    return 0;
}

vNomeCompleto包含:

PedroOliveiraCardoso
TiagoAntunesSilva
AnaFerreiraAzevedo
BrunoSantosMonteiro
CamilaCunhaSoares

暫無
暫無

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

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