#include <cs50.h> #include <stdio.h> int example[]; int main(void) { int example = {1,2,3}; for (int i = 0; i < 3; i++) { printf("%i \n", example[i]); } } 

Por que isso me dá as mensagens de erro: “Excesso de elemnts no inicializador escalar” em “2” na matriz que estou definindo e a mensagem de erro “O valor inscrito não é uma matriz, ponto ou vetor” no meu “[i]” ao tentar imprimir o I-ésimo inteiro na matriz?

Obrigado.

Comentários

  • Há um erro na inicialização: int example = [1,2,3]; e não {} 🙂
  • @AhmedEl não ..
  • @JakobH, em C, um array tem tamanho fixo – uma vez que o tamanho de um array é determinado, ele não pode ser alterado. agora qual é o tamanho que você definiu example como sendo? quantos elementos você está tentando empurrar para example?
  • Desculpe, não ' não vejo a linha antes de principal …

Resposta

Você deve definir o tamanho da matriz.

IE:

int example[10]; 

então você pode fazer isso para definir o primeiro elemento da matriz para 1:

example[0] = 1; 

No entanto, você não pode fazer isso:

int example[10]; example = {1, 2, 3}; 

Se você já definiu a matriz, o compilador espera que você defina qual elemento (IE: [0]) da matriz que deseja definir (ou alterar), então o que deseja atribuir a esse elemento ( IE: 1).

se quiser que o tamanho seja definido automaticamente, você pode excluir isto:

int example[]; 

e escrever isto:

int example[] = {1, 2, 3}; 

então o compilador sabe que você está definindo a matriz e configurando os valores dos valores dos 3 elementos para 1, 2 e 3.

Seu código deve ser semelhante a este:

#include <cs50.h> #include <stdio.h> int main(void) { int example[] = {1,2,3}; for (int i = 0; i < sizeof(example) / 4; i++) { printf("%d\n", example[i]); } } 

Espero que isso ajude! 🙂

Resposta

Fazendo

int example[]; 

você está inicializando um ponteiro para um array cujo tamanho não está definido. Depois disso, em

int example = {1,2,3}; 

você está adicionando valores ao ponteiro, o que é ilógico e não tem nenhum significado, você pode simplesmente fazer como

int example[3]; int example = {1,2,3}; 

Espero que isso ajude!

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *