1

Salut je comprend pas pourquoi ca plante quand on quitte et si on reduit la taille du tableau ca plante au redemarrage du prog de plus ca ecrit pas les chaine que je lui demande, la matrice de char doit pouvoir atteindre au max 500 / 40 soit 20 KO

Merci d'avance

// C Source File
// Created 20/09/2002; 00:41:12

#define USE_TI89 // Produce .89z File

#define OPTIMIZE_ROM_CALLS // Use ROM Call Optimization

#define SAVE_SCREEN // Save/Restore LCD Contents

#include <tigcclib.h> // Include All Header Files

// Main Function
void _main(void)
{
int M=4, N=7, i=0;
char (*A)[M][N] = calloc(M+1,N+1);
FontSetSys(F_4x6);
ClrScr();
strncpy((char *)A[1], "Chaine1", N);
strncpy((char *)A[2], "Chaine2", N);
strncpy((char *)A[3], "Chaine3", N);
strncpy((char *)A[4], "Chaine4", N);
for (i = 1; i <= M; i++)
{
DrawStr(10, ((i*8)-5), (char *)A[i] , A_NORMAL);
}
ngetchx();
free ((char *)A);
}

2

>int M=4, N=7, i=0;
>char (*A)[M][N] = calloc(M+1,N+1);
C'est faux. Tu alloues (M+1)(N+1) octets au lieu de 4MN. Et puis cette notation ne va pas convenir pour ce que tu vas faire après.
Correct: char (*A)[N] = calloc(M*N,sizeof(char *)); .

>strncpy((char *)A[1], "Chaine1", N);
>strncpy((char *)A[2], "Chaine2", N);
>strncpy((char *)A[3], "Chaine3", N);
>strncpy((char *)A[4], "Chaine4", N);
Alors là, il y a plusieurs erreurs. Déjà, N devrait valoir 8, pas 7, ici! ("Chaine1" fait 8 caractères avec le '' final.) Ensuite, le (char *) est totalement inutile.

>free ((char *)A);
Là aussi, le transtypage ne sert strictement à rien.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

3

Ca dechire ca marche trops bien, Merci beaucouptop

4

En + mon prog avec toute ces variable et sprite supporte une matrice de 400 /40 ca va nickel