文字列に格納されているファイル拡張子を変更するコードを書くときに問題が発生します。たとえば、文字列bla/bla/file.icc
をbla/bla/file.cmr
に変更したいと考えています。この文字列は構造体の一部です。私は2つの問題があります。 。一つは、ここで構造体から文字列を変更する
strcpy
がtd_ActDOR
前に、」期待される表現を、このメッセージを与え、二番目がためであるとのにこのメッセージsubscribed value is neither array nor pointer
を与えるということである私のコードです:あなたのコードで
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct s_ActDOR
{
char pDOR_file[86];
}td_ActDOR;
int main(void)
{
char path[80]="blabla/blabla/aici.icc";
td_ActDOR *Obiect;
Obiect = (td_ActDOR *)malloc(sizeof (td_ActDOR));
strcpy(td_ActDOR->pDOR_file, "blabla/blabla/file.icc");
int path_lenght=strlen(td_ActDOR->pDOR_file);
int i;
char bla[4] = "rmc\0";
printf("Stringul before: %s\n",path);
for (i = 0; i < 3; i++)
{
Obiect->pDOR_file[path_lenght-(i+1)] = bla[i];
}
printf("Stringul after: %s\n",path);
return 0;
}
['malloc()'と 'C 'のファミリの戻り値をキャストしない理由についてのこのディスカッションを参照してください。](http://stackoverflow.com/q/605845/2173917)。 –
'pActDORwrk'は宣言されていません –