力扣 https://leetcode.cn/problems/greatest-common-divisor-of-strings/
在做这道题目时,一直报内存访问越界。调试后找到问题所在,对于可能越界的地方,都需要先加上限制条件后再进行访问。
// str1 can be diveded by s or not
int canDivide(char *s, char *str1){
int lens,len1;
lens=strlen(s);
len1=strlen(str1);
if(lens==0)return 0;
if(lens>len1 || (lens==len1 && strcmp(s,str1)!=0) || len1%lens!=0)return 0;
else{
char *sCom;
sCom=(char *)malloc((len1+1)*sizeof(char));
memset(sCom,0,(len1+1)*sizeof(char));
for(int i=0;ilen2 ?len2:len1;
char *res;
res=(char *)malloc((minlen+1)*sizeof(char));
memset(res,0,(minlen+1)*sizeof(char));
char *temp;
temp=(char *)malloc((minlen+1)*sizeof(char));
memset(temp,0,(minlen+1)*sizeof(char));
int i,j;
if(len1<=len2){
for(i=0;i



