J’ai trouvé ce code fonctionne parfaitement. #include #include int main(int argc,char *argv[]) { char* s; /* input ssortingng */ s=malloc(sizeof(s)); int c; if(argc==1){ // if file name not given while (gets(s)){ puts(s); } } } Ce que je ne comprends pas, c’est comment la chaîne s est stockée dans la mémoire.J’atsortingbue de la mémoire uniquement […]
(Cette question concerne le filtrage des fichiers indésirables de la sortie de valgrind ). J’essaie de déboguer des memory leaks dans un projet volumineux qui est en grande partie hors de ma scope – c’est un fork d’une base de code qui est de l’ordre de millions de lignes de code, bien que la plupart […]
Est-il possible d’atsortingbuer à une variable l’adresse que vous voulez, en mémoire? J’ai essayé de le faire mais j’obtiens une erreur en tant que “Lvalue requirejse en tant qu’opérande de gauche d’affectation”. int main() { int i = 10; &i = 7200; printf(“i=%d address=%u”, i, &i); } Quel est le problème avec mon approche? Y […]
Je travaille actuellement sur une application de micrologiciel de chargeur de démarrage ciblée sur STM32F030C8. J’ai spécifié dans mon fichier scatter que l’application du chargeur de démarrage occupera l’emplacement de mémoire principale 0x08000000 à 0x08002FFF (secteur 0 à secteur 2). J’ai également écrit une application de firmware principale stockée de 0x08003000 à 0x0800C800. Après avoir […]
Je crée un fil et je le mets dans une boucle infinie. Je reçois des memory leaks lors de la vérification du code avec valgrind . Voici mon code: #include #include void thread_do(void){ while(1){} } int main(){ pthread_t th; pthread_create(&th, NULL, (void *)thread_do, NULL); sleep(2); /* I want to kill thread here */ sleep(2); return […]
J’ai consulté le guide de l’utilisateur du compilateur TI C / C ++ v6.1 ( spru514e ), mais je n’ai rien trouvé. La déclaration asm ne semble rien fournir à cet égard, le manuel met même en garde contre toute modification de la valeur des variables (p132). L’extension GNU permettant de déclarer des effets sur […]
Dans le programme C, je suis confronté à des transactions nécessitant beaucoup de morceaux de mémoire, il me faut savoir s’il existe un algorithme ou une meilleure pratique utilisée pour gérer tous ces fichiers. pointer le tableau lui-même se remplit et réaffecter le tableau est un gaspillage supplémentaire, quelle est la manière élégante de traiter […]
Considérons le code suivant: char* str = “Hello World”; memcpy(str, “Copy\0”, 5); Une erreur de segmentation se produit pendant la mémoire. Cependant, en utilisant ce code: char str[12]; memcpy(str, “Hello World\0”, 12); memcpy(str, “Copy\0”, 5); Le programme ne génère pas d’erreur de segmentation. Le problème provient-il de l’allocation de mémoire sur la stack par rapport […]
Disons que j’ai une structure représentant un document PDF pdf et une structure représentant l’une de ses pages pdf_page : typedef struct pdf_page { int page_no; pdf_page *next_page; char *content; } pdf_page; typedef struct { pdf_page *first_page, *last_page; } pdf; De mon main() , j’appelle create_pdf_file(pdf *doc) : void main() { pdf doc; create_pdf_file(&doc); // […]
J’ai un comportement déroutant avec l’alignement de la mémoire des éléments de structure. Considérez ces deux structures: typedef struct s_inner { unsigned long ul1; double dbl1; fourth_struct s4; unsigned long ul2; int i1; } t_inner; typedef struct s_outer { other_struct member1; /* 4-byte aligned, 40 bytes in terms of sizeof() */ unsigned long member2; t_inner […]