haben Sie einen Blick auf dieses ProgrammProbleme in der Struktur vorbei wörtlichen als Funktionsparameter
#include<stdio.h>
#include<string.h>
typedef struct hs_ims_msrp_authority
{
int host_type;
char buf[50];
int port;
}hs_i;
int main()
{
char dom[50];
int i = 10, j = 20;
strcpy(dom, "ine");
fun((hs_i){i, dom, j}); // doesnt work
fun((hs_i){i, "dom", j}); // this works
}
int fun(hs_i c)
{
printf("%d %s %d\n", c.host_type, c.buf, c.port);
}
In Aufruf Spaß Funktion in main; Wie kommt Funktionsaufruf, wenn String-Literal ("dom") übergeben wird, wo, wie wenn Array-Variable (dom) übergeben wird funktioniert es nicht?
Um variable Arbeit zu machen, sollte es auf eine bestimmte Art typisiert werden? oder gibt es einen anderen Weg?
@Sibrajas: tun, diese 'fun ((hs_i) {i, * dom, j})' würde den ersten charecter in dom nur kopieren, aber nicht die gesamte Zeichenfolge. – rik
@prasunbheri Ich habe das nicht gegeben (Spaß ((hs_i) {i, * dom, j}) als Antwort. Ich habe gerade erklärt, warum Spaß ((hs_i) {i, dom, j}); nicht arbeiten. –