-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmxCreateString.c
More file actions
60 lines (53 loc) · 1.91 KB
/
mxCreateString.c
File metadata and controls
60 lines (53 loc) · 1.91 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
/*
* Copyright 2011 Emanuel Ey <[email protected]>
*
* This file is part of matOut.
*
* MatOut is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* MatOut is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with matOut. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#include <stdio.h>
#include <string.h>
#include "matOut.h"
mxArray* mxCreateString(const char *);
mxArray* mxCreateString(const char *inString){
// allocate memory for struct
mxArray* outArray = malloc(sizeof(mxArray));
if (outArray == NULL){
fatal("mxCreateString(): memory allocation error.");
}
// initialize variables
outArray->mxCLASS = mxCHAR_CLASS;
outArray->miTYPE = miINT8;
outArray->dataElementSize = sizeof(char);
outArray->pr_double = NULL;
outArray->pi_double = NULL;
outArray->pr_char = NULL;
outArray->dims[0] = 1;
outArray->dims[1] = strlen(inString);
outArray->numericType = mxREAL;
outArray->isStruct = false;
outArray->isChild = false;
outArray->nFields = 0;
outArray->fieldNames = NULL;
// allocate memory for string
// NOTE: mallocChar already checks for succesfull allocation
outArray->pr_char = mallocChar(strlen(inString)+1);
memset(outArray->pr_char, 0x00, strlen(inString)+1);
//Copy string to data pointer
//strncpy(char* dst, const char* src, size_t size);
strncpy(outArray->pr_char, inString, strlen(inString));
//printf("strlen(inString): %u", (uint32_t)strlen(inString));
return outArray;
}