- Ao compilar com o gcc resulta em:
teste_forum.c: In function ‘main’:
teste_forum.c:17: warning: assignment from incompatible pointer type
teste_forum.c:35: warning: initialization from incompatible pointer type
teste_forum.c:35: warning: excess elements in scalar initializer
teste_forum.c:35: warning: (near initialization for ‘palavras’)
teste_forum.c:35: warning: excess elements in scalar initializer
teste_forum.c:35: warning: (near initialization for ‘palavras’)
teste_forum.c:35: warning: excess elements in scalar initializer
teste_forum.c:35: warning: (near initialization for ‘palavras’)
Executando:
Valor de a[0][0] eh 1
Valor de a[0][1] eh 2
Valor de a[0][2] eh 3
Valor de a[1][0] eh 4
Valor de a[1][1] eh 5
Valor de a[1][2] eh 6
O nome é: Cachorro
O nome é: orro
O nome é:
O nome é: ome é: %s
O nome é: é: %s
O nome é: %s
O nome é: ,
O nome é: ,
O nome é:
O nome é:���H
- Compilando no g++:
teste_forum.c: In function ‘int main()’:
teste_forum.c:17: error: cannot convert ‘int*’ to ‘int (*)[3]’ in assignment
teste_forum.c:35: error: scalar object ‘palavras’ requires one element in initializer
Duvidas:
1) Como seria a correta declaração de retorno da função 'aloca' e como seria a correta conversão de tipo (cast) dentro da função 'aloca'? Preciso de uma solução utilizando int (*a)[3] porque é apenas um ponteiro para vetores de 3 posições. Tentei utilizar o cast e o retorno da função como int (*)[3] mas não dá certo também!
2) Na parte de strings porque é impresso um trecho do código?