implementare functia "strncpy"

Intrebari despre limbajul C++, standardul C++, STL, OOP in C++ sau alte subiecte nelegate de VisualC++
Post Reply
david_stelian
Junior
Junior
Posts: 20
Joined: 13 Sep 2014, 22:35
Judet: Dolj

implementare functia "strncpy"

Post by david_stelian » 11 Apr 2015, 12:36

Primul cod este facut cu siruri de caractere si ruleaza, insa al doilea cod nu ruleaza cand este facut cu pointeri.
Imi poate spune cineva de ce ?

Code: Select all

#include <iostream>
using namespace std;
void strncpy(char[50], char[50], int);

int main()
{
    char sursa[50] = "alexandrescu", destinatie[50];
    strncpy(sursa, destinatie, 10);
    return 0;
}

void strncpy(char sursa[50], char destinatie[50], int n)
{
    cout << "\n Sirul destinatie este: ";
    for (int i=0; i<n; i++)
    {
        destinatie[i]=sursa[i];
        cout << destinatie[i];
    }
    cout << endl;
}

Code: Select all

#include <iostream>
using namespace std;
void strncpy(char*, char*, int);

int main()
{
    char *sursa = "alexandrescu", *destinatie = '\0';
    strncpy(sursa, destinatie, 10);
    return 0;
}

void strncpy(char *sursa, char *destinatie, int n)
{
    cout << "\n Sirul destinatie este: ";
    for (int i=0; i<n; i++)
    {
        *(destinatie+i)=*(sursa+i);
        cout << *(destinatie+i);
    }
    cout << endl;
}



neagu_laurentiu
Membru++
Membru++
Posts: 919
Joined: 23 Jul 2007, 11:32

Re: implementare functia "strncpy"

Post by neagu_laurentiu » 11 Apr 2015, 16:10

Pentru ca nu ai alocat spatiul necesar stocarii in "destinatie".

User avatar
Silviu Ardelean
Senior
Senior
Posts: 1175
Joined: 12 Jul 2007, 09:22
Judet: Timiş
Location: Timisoara
Contact:

Re: implementare functia "strncpy"

Post by Silviu Ardelean » 14 Apr 2015, 23:51

Ca un mic comentariu... un array pasat ca argument ajunge sa fie ajustat de catre compilator ca un pointer char la primul element. Deci, in ambele situatii ai pointeri. Diferenta e de "semantic sugar" cu operatorul [].

Post Reply